The default for log output enabled via the '-d' command line switch is now standard error rather than a file. You can obtain the previous behaviour using the '-D' command line switch to specify a file to send the logging to.
QEMU now uses poll rather than select, and thus does not have any restriction on the number of open file descriptors.
System emulation
Device emulation
Audio
The --audio-card-list configure option is not used anymore. Instead, you can modify default-configs/pci.mak (for the PCI soundcards AC97, HDA and ES1370) and default-configs/sound.mak (for the ISA soundcards) before running "make".
The "shortcut" -soundhw option is now available for all targets that have a PCI bus.
Device assignment
VFIO supports primary VGA passthrough using the experimental "x-vga=on" option. The following devices seem to work: Nvidia 8400gs, 73001e, NVS290; ATI/AMD Radeon HD5450 and HD7850.
VFIO devices support the bootindex= property to override the default boot order for assigned PCI devices.
USB
Experimental support for USB 3.0 streams, both in the nec-usb-xhci controller and in the usb-uas USB-attached SCSI device emulation.
USB device passthrough has been rewritten to use libusb. For Linux, the two backends can be compiled in a single QEMU executable (if libusb is enabled, usb-host-linux will be the legacy implementation, usb-host will be the libusb-based one; if libusb is disabled, usb-host will be the legacy implementation). For BSD, it has to be chosen at configure time using --enable/disable-libusb (the default is to use libusb if it is available, otherwise use the legacy implementation).
SCSI
QEMU can now emulate the VMware PVSCSI device using "-device pvscsi".
QEMU can now use tcm_vhost, a virtio-scsi device model based on the Linux-iSCSI implementation of SCSI.
Network cards
QEMU can now emulate the VMware paravirtualized network card using "-device vmxnet3".
ARM
This release has initial support of KVM for the ARM architecture. This requires a 3.9 or better Linux kernel and a Cortex-A15 CPU.
The Zynq board provides a SD host controller interface.
The PCI controller model for VersatilePB and Realview boards has been significantly improved in functionality (including MMIO BAR support and a correct PCI IRQ mapping). Note that Linux kernels currently do not take advantage of this; however we autodetect kernels that expect the behaviour of an old broken QEMU and fall back to that. (The old IRQ behaviour can be forced with "-global versatile_pci.broken-irq-mapping=1" if absolutely necessary.)
Incorrect handling of the SRS instruction in Thumb mode has been fixed.
Performance of TCG emulation of ARM targets is improved over previous releases.
Migration and vm save/load now works correctly on the vexpress-a15 and vexpress-a9 models.
PPC
Various improvements to TCG code generation
KVM synchronizes more state
Fix a few issues that blocked Mac OS X from working (still not 100% there though!)
Refactoring and improvement of soft mmu emulation for book3s
Implement various new instructions for ISA 2.05 and ISA 2.06 compatibility (-cpu POWER7)
Implement support for KVM based e500 family watchdog
s390x
Various accuracy fixes for device emulation
Faster I/O hypercalls
Add firmware to boot from virtio-ccw disks
Guest kernel panics are notified to the host
SPARC
Improve sun4u interrupt mapping, so that multiple PCI devices can be used simultaneously
x86
x86 supports emulation of a TPM (Trusted Platform Module) on machines that have a hardware TPM
Various speedups in TCG emulation of x86
The iPXE ROMs that are distributed with QEMU support EFI
TCG supports the SSE4.1, SSE4.2, PCLMULQDQ, AES-NI, BMI and ADX extensions.
A paravirtual device is included that lets the guest notifies kernel panics to the host.
CPU hot-add support with cpu-add QMP command. More details Features/CPUHotplug.
new CPU properties "feature-words" and "filtered-features" to allow introspection of supported and not supported CPU features.
All kinds of character devices can now be hot-plugged. Character device hotplug is also supported from the "human" monitor.
Block devices
IDE and SCSI disks always have the ability to issue "discard" (aka TRIM or UNMAP) commands. However, by default "discard" commands are silently ignored as they can cause performance degradation and fragmentation. To enable them, the "-drive" option now supports a "discard" suboption; the default value is "ignore" (or its synonym "off"), and the other valid value is "unmap" (or "on").
Sheepdog drives can also be specified with URIs.
iSCSI disks support on-line resizing using block_resize. Similar to block devices, the resize has to be done first outside QEMU.
Various performance improvements in qcow2 internal snapshots (savevm).
The NBD backend has improved latency.
qemu-nbd can now skip image format probing using the -f/--format command-line option.
VHDX (MS Hyper-V) image format has initial read-only support. Dynamic and fixed sized disks are supported, but not differencing images (e.g. VHDX images with a backing file). Read-only is strictly enforced, and the 'readonly=on' option must be used for any VHDX images.
Secure Shell (ssh) support. Access remote disks over ssh using qemu -drive file=ssh://host/path/to/file
Live Migration
Further improvements in throughput (up to +130%: 4.2 Gbps in 1.5 vs 1.8 Gbps in 1.4) and latency.
User interface
QEMU now provides a GTK+ interface. The interface uses the VTE library to provide better terminal emulation for serial consoles and the monitor.
A new VNC extension has been added to communicate LED state changes for the keyboard.
VNC
Websocket connections can now be encrypted with TLS.
User-mode emulation
Threaded programs are now more stable, though still experimental.
Guest agent
New commands in qemu-ga let the host put CPUs online/offline with help from the guest OS (Linux only)
Low impact CVE-2013-2007 ("qemu: guest agent creates files with insecure permissions in daemon mode") is fixed.
Note for guest administrators: unix domain sockets, logfiles etc. created by previous versions of qemu-ga do not have their file mode bits reset by this change; only newly created files have mode 0600 when daemonizing. Please delete your old files or change their permissions manually when upgrading.
The guest-file-open QMP command continues to create files with mode 0666 for compatibility reasons.
Host support
QEMU is now a lot faster on Windows hosts than in previous versions
libcacard has been ported to Windows.
Known issues
The GTK+ backend does not compile on BSD systems (including Mac OS X). This will likely be fixed in a later stable update.